package com.yztctech.android11_03_contextmenu;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
/**
 * ContextMenu
 * 备注:
 * 1. 长按TextView,屏幕中间显示一个弹窗menu
 * 2. menu适合做选项,不适合做文字太多的,我认为可以做一些app中的小细节东西,但是要设计好ui风格,灵活的ui感觉还是用popupwindow和dialog比较好呢
 * */
public class MainActivity extends AppCompatActivity {

    private TextView testTv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        testTv = (TextView)findViewById(R.id.tv_text);

        //注册上下文菜单------------？系统需要知道识哪一个view控件出发的context上下文菜单，其他的和options菜单完全相同
        registerForContextMenu(testTv);
    }

    @Override//onCreate方法 
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);

        getMenuInflater().inflate(R.menu.menu_main, menu);//不居加载器实例化布局到ContextMenu对象，
        menu.setHeaderIcon(R.mipmap.ic_launcher);
        menu.setHeaderTitle("文字设置");
    }

    @Override//直接复写监听的方法
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.menu_visible:
                testTv.setVisibility(View.VISIBLE);
                break;
            case R.id.menu_invisible:
                testTv.setVisibility(View.INVISIBLE);
                break;
            case R.id.menu_color_black:
                testTv.setTextColor(Color.BLACK);
                break;
            case R.id.menu_color_red:
                testTv.setTextColor(Color.RED);
                break;
            case R.id.menu_color_blue:
                testTv.setTextColor(Color.BLUE);
                break;
        }
        return true;
    }
}
